package study.demo.MES;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;

/**
 * <p>
 * 生产记录参数
 * </p>
 *
 * @author 小马
 * @since 2025-07-14
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class ProductionParam  implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 所属生产记录id
     */
    private String productionRecordsId;

    /**
     * 步骤id
     */
    private String stepId;

    /**
     * 步骤详情id
     */
    private String stepDetailId;

    /**
     * 检查点模板id
     */
    private String templateId;

    /**
     * 参数key
     */
    private String paramKey;

    /**
     * 参数标识
     */
    private String paramMark;

    /**
     * 参数名称
     */
    private String paramName;

    /**
     * 参数值
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Object paramValue;

    /**
     * 数据来源 171:人工，172：设备 来自 CraftsConfigureParamTypeEnum
     */
    private Integer paramDataSource;

    /**
     * 参数排序
     */
    private Integer paramOrder;

    /**
     * 设备型号
     */
    private String paramDeviceModelId;

    /**
     * 设备id
     */
    private String deviceId;


    /**
     * 参数默认值
     */
    @TableField(typeHandler = FastjsonTypeHandler.class)
    private Object paramDefaultValue;

    /**
     * 表单参数类型
     */
    private String formItemType;

    /**
     * 参数可选项
     */
    private String optionItems;

    /**
     * 是否是步骤内容参数
     */
    private Integer contentParam;

    /**
     * 参数是否必填
     */
    private Boolean paramRequired;

    /**
     * 是否参与流程控制
     */
    private Boolean processControl;

    /**
     * 字段简要说明
     */
    private String fieldDescription;

    /**
     * 关键工艺参数
     */
    private Boolean craftsParamKey;

    /**
     * 关键质量参数
     */
    private Boolean qualityParamKey;

    /**
     * 是否参与统计
     */
    private Boolean countControl;

    /**
     * 统计字段名称
     */
    private String countFieldName;

    /**
     * 参考值上限
     */
    private String referValueMax;

    /**
     * 参考值下限
     */
    private String referValueMin;
}